/* list of all GPIO         */
/* add another if necessary */
#define GPIO_A GPIOA
#define GPIO_B GPIOB
#define GPIO_C GPIOC
#define GPIO_D GPIOD
#define GPIO_E GPIOE
#define GPIO_F GPIOF
#define GPIO_G GPIOG

/* list of all PIN          */
/* add another if necessary */
#define PIN_0  (uint16_t)GPIO_Pin_0
#define PIN_1  (uint16_t)GPIO_Pin_1
#define PIN_2  (uint16_t)GPIO_Pin_2
#define PIN_3  (uint16_t)GPIO_Pin_3
#define PIN_4  (uint16_t)GPIO_Pin_4
#define PIN_5  (uint16_t)GPIO_Pin_5
#define PIN_6  (uint16_t)GPIO_Pin_6
#define PIN_7  (uint16_t)GPIO_Pin_7
#define PIN_8  (uint16_t)GPIO_Pin_8
#define PIN_9  (uint16_t)GPIO_Pin_9
#define PIN_10 (uint16_t)GPIO_Pin_10
#define PIN_11 (uint16_t)GPIO_Pin_11
#define PIN_12 (uint16_t)GPIO_Pin_12
#define PIN_13 (uint16_t)GPIO_Pin_13
#define PIN_14 (uint16_t)GPIO_Pin_14
#define PIN_15 (uint16_t)GPIO_Pin_15

/* list of all pin mode     */
/* add another if necessary */
#define MODE_PULL_DOWN        GPIO_Mode_IPD
#define MODE_PULL_UP          GPIO_Mode_IPU
#define MODE_IN_FLOATING      GPIO_Mode_IN_FLOATING
#define MODE_OUT_PUSH_PULL    GPIO_Mode_Out_PP
#define MODE_OUT_AF_PUSH_PULL GPIO_Mode_AF_PP

/* list of all clock        */
/* add another if necessary */
#define CLOCK_GPIOA    (RCC_APB2Periph_GPIOA)             
#define CLOCK_GPIOB    (RCC_APB2Periph_GPIOB) 
#define CLOCK_GPIOC    (RCC_APB2Periph_GPIOC) 
#define CLOCK_GPIOD    (RCC_APB2Periph_GPIOD) 
#define CLOCK_GPIOE    (RCC_APB2Periph_GPIOE) 
#define CLOCK_GPIOF    (RCC_APB2Periph_GPIOF) 
#define CLOCK_GPIOG    (RCC_APB2Periph_GPIOG) 
#define CLOCK_AFIO     (RCC_APB2Periph_AFIO)
#define CLOCK_TIM_1    (RCC_APB2Periph_TIM1)
#define CLOCK_TIM_2    (RCC_APB1Periph_TIM2)
#define CLOCK_TIM_3    (RCC_APB1Periph_TIM3)
#define CLOCK_TIM_4    (RCC_APB1Periph_TIM4)
#define CLOCK_TIM_5    (RCC_APB1Periph_TIM5)
#define CLOCK_TIM_6    (RCC_APB1Periph_TIM6)
#define CLOCK_TIM_7    (RCC_APB1Periph_TIM7)
#define CLOCK_TIM_8    (RCC_APB2Periph_TIM8)


/* list of all tim          */
/* add another if necessary */
#define TIM_1 TIM1
#define TIM_2 TIM2
#define TIM_3 TIM3
#define TIM_4 TIM4
#define TIM_5 TIM5
#define TIM_6 TIM6
#define TIM_7 TIM7
#define TIM_8 TIM8

/* list of all usart        */
/* add another if necessary */
#define USART_1 USART1
#define USART_2 USART2
#define USART_3 USART3

/* list of all word lenght  */
/* add another if necessary */
#define WORD_LENGTH_8 USART_WordLength_8b

/* list of all stop bit     */
/* add another if necessary */
#define STOP_BIT_1 USART_StopBits_1

/* list of all parity       */
/* add another if necessary */
#define PARITY_NONE USART_Parity_No
